/**
 * org.assess.oa.system.service.TbPostService
 */
package org.assess.oa.system.service;

import java.util.List;

import org.assess.core.service.ServiceResult;
import org.assess.oa.system.bean.TbPost;
import org.assess.oa.system.bean.TbPostRole;

/**
 * @description 岗位管理的Service层接口
 * @author XiaLongxiang
 * @createtime 2012-6-5 下午2:05:25
 */
public interface TbPostService {
    /**
     * 根据岗位编码查询岗位信息
     * @param post_id
     * @return
     */
    public TbPost queryTbPostById(String post_id);
    
    /**
     * 分页查找岗位信息，并返回支持系统分页的JSON字符串
     * @param page
     * @param rows
     * @param post
     * @return
     */
    public String queryTbPostAsList(int page, int rows, TbPost post);
    
    /**
     * 根据岗位ID查询岗位角色关联信息，并返回岗位角色关联信息信息列表
     * @param post
     * @param include - 若为true则表示使用类似外连接的方式查询出所有的岗位角色关联信息；反之则仅查询内链接的信息
     * @return
     */
    public List<TbPostRole> queryTbPostRoleByPostIdAsList(TbPost post, boolean include);
    
    /**
     * 保存岗位信息
     * @param post
     * @param roleString
     * @param edit
     * @return
     */
    public ServiceResult saveTbPost(TbPost post, String roleString, boolean edit) throws Exception;
    
    /**
     * 删除岗位信息
     * @param post
     * @return
     */
    public String deleteTbPost(TbPost post) throws Exception;
}
